1. Field of the invention
This invention relates to the field of computer aided drafting (hereafter referred to as CAD) systems. In particular, the present invention relates to a placement subsystem comprising methods and structures for enhancing the flexibility of such CAD systems for automated placement of objects on images generated by CAD systems.
2. Background Art
Computer aided drafting (CAD) systems improve the productivity of repetitive manual procedures common to use drafting systems. Users of such systems use alphanumeric input means, such as a keyboard, and graphical input means, such as a mouse or tablet, to direct a computer system to create or modify graphical images. The graphical images are comprised of one or more graphical objects positioned within the graphical image. Graphical objects may be lines, symbols, geometric shapes, text, or other constructs which are to be placed on the graphical image. The current graphical representation of the user defined graphical image is usually displayed on a display means such as a CRT display. A user of such a system manipulates the graphical image until satisfied with the appearance and then may direct the CAD system to save the graphical image for later use or produce "hard copy" output on a permanent medium such as a paper copy of the image created by a plotter device.
In the use of most CAD systems, the user identifies the placement position, placement angle, size, and other graphical attributes of each graphical object. In some applications of such CAD systems the placement of graphical objects with respect to one another is not critical. In such situations, simple freehand drawing by the user may be sufficient to place one graphical object visually near another graphical object. When more precision is required in the relative placements of graphical objects, a common approach in CAD systems is to force a graphical object to "snap to" a nearby grid location. Snapping serves to automatically reposition a graphical object to align a point on the object with a nearby standard grid location. This method helps assure that all graphical objects have a similar relationship to standard dimensional grid positions on the graphical image.
In still other applications of CAD systems, the relative placement and interconnection of graphical objects may depend on the semantic interpretation to be applied to the graphical object. In other words, the relative placement of graphical objects may imply relations exist between the graphical objects. Automated analysis can determine whether the relations are valid or invalid. Such 10 semantic dependencies determine the appropriate placement of a graphical object by determining the semantic meaning for that object as well as for other objects positioned nearby on the graphical image. For example, in CAD systems used in electrical engineering applications, the CAD system may attempt to prevent a user from connecting a wire symbol between a symbol representing a DC voltage and a symbol representing electrical ground. Such a connection between these graphical objects would be interpreted as a direct short between power and ground and therefore a CAD system may preclude such placement of these graphical objects. Some vendors of CAD systems used in electrical engineering configure their systems with libraries or databases containing several rules for controlling the relative placement of graphical objects based on the electrical semantic meaning associated with each graphical object. For example, such database entries may define electrical attributes for graphical objects including electrical current sinking and sourcing requirements, electrical capacitance, and signal type (input, output, power, ground, etc.), to permit validation of the electrical connections between the several graphical objects.
In yet other applications of CAD systems, the rules for relative placement of graphical objects are more complex. For example, in the utilities industries, maps indicating location and interconnection of devices are drawn according to rules developed over decades of manual drafting procedures. These rules define the procedures to be followed by a draftsperson in modifying a map to reflect changes made in the placement or interconnection of utility devices by field repair personnel. By way of example, there are rules which determine which types of graphical objects may be drawn over other types of graphical objects (hereafter referred to as "overplotting"). Other rules dictate an offset location and angle at which textual labels may be placed relative to the graphical object being labelled. Still other rules control the starting position and incremental angles for connecting a plurality of graphical objects referred to as "devices" to an associated graphical object.
A problem arises for current CAD applications processing such complex sets of rules for graphical object placement and interconnection such as those described above with respect to the utility industries. The number and complexity of rules controlling the placement and interconnection of graphical objects on the graphical image for drafting maps in the utility industries can dramatically increase the complexity of CAD system products by adding specific methods to implement each rule. To avoid adding such complexity to a general purpose CAD system, prior systems have placed a significant burden on the user of the CAD system to manually apply the various rules when creating the graphics image.
Another aspect of the above problem is that the set of complex rules described above for drafting maps in the utility industries is highly variable between utility companies. CAD systems attempting to automate these rules and processes must confront additional complexity in implementing such rules in a manner unique to each customer in the utility industries.